분기 한정법
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
분기 한정법은 최적해를 찾기 위해 탐색 공간을 분할하고, 각 부분 문제의 상한과 하한을 계산하여 불필요한 탐색을 줄이는 알고리즘이다. 분기(Branching)와 한정(Bounding) 단계를 반복하며, 하한이 상한보다 큰 부분 문제는 가지치기(Pruning)하여 탐색에서 제외한다. 큐 자료구조에 따라 너비 우선, 깊이 우선, 최선 우선 탐색을 사용할 수 있으며, 효율은 노드 분할과 상·하한 추정 절차에 크게 의존한다. 정수 계획법, 외판원 문제, 최대 만족 문제 등 다양한 NP-난해 문제에 적용되며, 휴리스틱의 기반이 되기도 한다.
더 읽어볼만한 페이지
- 조합 최적화 - A* 알고리즘
A* 알고리즘은 가중치 그래프에서 시작 노드부터 목표 노드까지 최소 비용 경로를 찾는 정보 탐색 알고리즘으로, 경로 비용과 목표까지 추정 비용의 합을 최소화하여 경로를 탐색하며 내비게이션, 게임 AI 등에 활용된다. - 조합 최적화 - 정수 계획법
정수 계획법은 선형 계획법의 한 분야로, 해가 정수 값을 가져야 하는 제약 조건이 추가된 최적화 문제이며, 다양한 분야에 응용되고 정확한 알고리즘 또는 휴리스틱 방법을 통해 해결할 수 있다. - 최적화 알고리즘 - 기댓값 최대화 알고리즘
- 최적화 알고리즘 - 유전 알고리즘
유전 알고리즘은 생물 진화 과정을 모방하여 최적해를 탐색하는 계산 최적화 기법으로, 해를 유전자로 표현하고 적합도 함수를 통해 평가하며 선택, 교차, 돌연변이 연산을 반복하여 최적해에 근접하는 해를 생성하며, 성능은 매개변수에 영향을 받고 초기 수렴 문제 해결을 위한 다양한 변형 기법과 관련 기법이 존재한다.
분기 한정법 |
---|
2. 기본 원리
분기 한정법(Branch and Bound)은 최적화 문제에서 최적의 해를 찾기 위해 사용되는 방법이다. 이 방법은 가능한 모든 해를 탐색하는 대신, 탐색 공간을 작은 부분으로 나누고(분기), 각 부분에서 최적해의 범위를 계산하여(한정) 불필요한 탐색을 줄인다.
분기 한정법은 다음 두 가지 주요 연산을 기반으로 작동한다.
- 분기(Branching): 탐색 공간을 더 작은 부분 공간으로 재귀적으로 나눈다.
- 한정(Bounding): 각 부분 공간에서 최적해의 하한(lower bound)을 계산한다. 이 하한은 해당 부분 공간에서 찾을 수 있는 가장 좋은 해의 값을 나타낸다.
분기만으로는 모든 후보 해를 나열하고 테스트하는 무차별 대입과 같지만, 한정 연산을 통해 최적해를 포함하지 않을 것으로 예상되는 부분을 제거하여(가지치기) 탐색 효율을 높인다.
분기 한정법은 특정 최적화 문제에 적용하기 위해 후보 해 집합을 나타내는 자료 구조와 다음 세 가지 연산이 필요하다.
- `branch(I)`: 주어진 인스턴스 `I`의 후보 해 집합을 나타내는 둘 이상의 하위 인스턴스를 생성한다.
- `bound(I)`: 인스턴스 `I`로 표현되는 공간의 모든 후보 해 값에 대한 하한을 계산한다.
- `solution(I)`: 인스턴스 `I`가 단일 후보 해를 나타내는지 확인하고, 필요한 경우 해당 해를 반환한다.
이러한 연산을 사용하여 분기 한정 알고리즘은 분기 연산으로 만들어진 트리를 통해 상향식 재귀 검색을 수행한다. 어떤 인스턴스 `I`를 방문했을 때, `bound(I)`가 현재까지 찾은 상한보다 크거나 같으면, 해당 인스턴스는 검색에서 제외된다.
2. 1. 분기 (Branching)
분기(Branching)는 문제의 해 공간을 여러 개의 부분 문제로 나누는 과정이다. 각 부분 문제는 탐색 트리의 노드로 표현되며, 원래 문제는 루트 노드에 해당한다.[4] 일반적으로 하위 문제들은 서로 중복되지 않도록(상호 배타적) 분할되지만, 필요에 따라 중복이 허용될 수도 있다.[4]함수 의 최소값을 구하는 최적화 문제를 예로 들어보자. 여기서 는 전체 해 집합 의 원소이다.
분기 과정은 주어진 집합 를 여러 부분 집합 로 나누는 것이다. 이때, 를 만족해야 한다. 각 부분 집합 에서의 의 최소값을 라고 하면, 원래 집합 에서의 의 최소값은 가 된다.
이러한 분기 과정을 재귀적으로 적용하면, 각 노드가 의 부분 집합을 나타내는 탐색 트리가 만들어진다.
분기 한정법은 동적 계획법이나 탐욕법과 달리 부분 문제의 최적성이 반드시 필요하지 않은 경우에도 적용할 수 있다. 적절하게 경우를 나누어 분기함으로써, 분기 한정법으로 문제를 효과적으로 해결할 수 있는 경우가 있다.
분기는 경우를 나누는 것이기 때문에 병렬 구현이나 분산 구현에 적합하다.
2. 2. 한정 (Bounding)
분기 한정법에서 한정(Bounding)은 각 부분 문제에서 최적해의 상한과 하한을 계산하는 과정이다.- 하한: 해당 부분 문제에서 얻을 수 있는 가장 낮은 (최소화 문제의 경우) 목적 함수 값이다.
- 상한: 해당 부분 문제에서 얻을 수 있는 가장 높은 (최소화 문제의 경우) 목적 함수 값이며, 보통 휴리스틱 기법을 통해 계산된다.
분기 한정법의 핵심은, 어떤 노드(후보 집합) ''A''의 하한이 다른 노드 ''B''의 상한보다 크면, ''A''는 탐색할 필요 없이 버려도 좋다는 것이다. 이 과정을 '''가지치기'''(pruning)라고 부르며, 일반적으로 전역 변수 ''m''에 그때까지 조사한 부분의 최소 상한값을 보존하는 방식으로 구현한다. 하한이 ''m''보다 큰 노드는 버릴 수 있다.[4]
재귀는 후보 집합 ''S''가 하나의 원소가 되었을 때, 또는 ''S''의 상한이 하한과 일치했을 때 멈춘다. 어느 쪽이든, 멈췄을 때의 ''S''의 어떤 원소도 함수를 최소값으로 만든다.
2. 3. 가지치기 (Pruning)
분기 한정법의 핵심은, 어떤 노드(후보 집합) ''A''의 하한이 다른 노드 ''B''의 상한보다 크면, ''A''는 탐색할 필요 없이 버려도 좋다는 것이다. 이 과정을 '''가지치기'''(pruning)라고 부른다.[4]가지치기는 일반적으로 전역 변수 ''m''에 그때까지 조사한 부분의 최소 상한값을 보존하는 방식으로 구현된다. 하한이 ''m''보다 큰 노드는 버릴 수 있다.
재귀는 후보 집합 ''S''가 하나의 원소가 되었을 때, 또는 ''S''의 상한이 하한과 일치했을 때 정지한다. 어느 쪽이든, 정지했을 때의 ''S''의 어떤 원소도 함수를 최소값으로 만든다.[4]
3. 알고리즘 절차
분기 한정법(Branch and Bound)은 최적화 문제를 해결하는 알고리즘으로, 가능한 해의 집합을 작은 부분 집합으로 나누는 '분기'와 각 부분 집합에서 최적해의 상한과 하한을 계산하는 '한정'을 통해 불필요한 계산을 줄인다.
분기 한정법은 다음 두 가지 주요 절차를 따른다.
- 분기 (Branching): 전체 문제의 해 공간을 여러 개의 작은 부분 문제로 나눈다. 이 과정을 재귀적으로 반복하여, 각 노드가 부분 문제를 나타내는 탐색 트리를 생성한다.
- 한정 (Bounding): 각 부분 문제에 대해, 목적 함수의 최적해에 대한 상한과 하한을 계산한다. 이 정보를 바탕으로, 현재까지 찾은 최적해보다 더 나은 해를 포함하지 않는 부분 문제를 제거(가지치기)하여 탐색 범위를 줄인다.
핵심 아이디어는 어떤 노드(부분 문제)의 하한이 다른 노드의 상한보다 크면, 그 노드는 탐색할 필요가 없다는 것이다. 이를 통해 탐색을 줄여 효율성을 높인다.
분기 한정법은 너비 우선 탐색, 깊이 우선 탐색, 최선 우선 탐색 등 탐색 트리의 노드를 생성하고 검사하는 방법에 따라 여러 방식으로 분류할 수 있다.
분기는 경우를 나누어 문제를 해결하므로, 병렬 컴퓨팅이나 분산 컴퓨팅 환경에 적합하다.
3. 1. 초기화
휴리스틱을 사용하여 최적화 문제의 해를 찾는다. 그 값을 에 저장한다. (휴리스틱을 사용할 수 없는 경우, 를 무한대로 설정한다.) 는 지금까지 찾은 최상의 해를 나타내며, 후보 해에 대한 상한으로 사용된다.[5] 문제의 변수 중 어느 것도 할당되지 않은 부분 해를 보관할 큐를 초기화한다.[5]3. 2. 반복
큐가 빌 때까지 다음 단계를 반복한다.[5]1. 큐에서 노드 ''N''을 꺼낸다.
2. 만약 ''N''이 단일 후보 해 ''x''를 나타내고 ''f''(''x'') < ''B''이면, ''x''가 지금까지의 최상의 해이다. 이를 기록하고 ''B'' ← ''f''(''x'')를 설정한다.
3. 그렇지 않으면, ''N''을 "분기"하여 새로운 노드 ''Ni''를 생성한다. 이들 각각에 대해:
- 만약 이면, 아무것도 하지 않는다. 이 노드의 하한이 문제의 상한보다 크기 때문에, 최적 해로 이어지지 않으므로 폐기할 수 있다.
- 그렇지 않으면, ''Ni''를 큐에 저장한다.
여러 가지 다른 큐 자료 구조를 사용할 수 있다. 이 FIFO 큐 기반 구현은 너비 우선 탐색을 생성한다. 스택 (LIFO 큐)은 깊이 우선 탐색 알고리즘을 생성한다. 최선 우선 탐색 분기 한정법 알고리즘은 노드를 하한에 따라 정렬하는 우선순위 큐를 사용하여 얻을 수 있다.[5] 이 전제를 가진 최선 우선 탐색 알고리즘의 예로는 다익스트라 알고리즘과 그 후손인 A* 탐색이 있다. 깊이 우선 변형은 초기 해를 생성하기 위한 좋은 휴리스틱을 사용할 수 없을 때 권장된다. 왜냐하면, 그것은 빠르게 완전한 해를 생성하고, 따라서 상한을 생성하기 때문이다.[6]
3. 3. 종료
큐가 비거나, 특정 종료 조건 (예: 시간 제한, 오차 범위)을 만족하면 알고리즘을 종료한다.[4] 재귀는 후보 집합 가 하나의 원소가 되었을 시점에서 정지하거나, 의 상한이 하한과 일치했을 경우에 정지한다. 어느 쪽이든, 정지했을 때의 의 어떤 원소도 함수를 최소값으로 만든다.4. 큐의 종류와 탐색 전략
분기 한정법에서는 사용하는 큐의 종류에 따라 탐색 전략이 달라진다. FIFO 큐를 사용하면 너비 우선 탐색이 되고, 스택(LIFO 큐)을 사용하면 깊이 우선 탐색이 된다. 최선 우선 탐색 분기 한정법 알고리즘은 각 노드의 하한 값에 따라 정렬하는 우선순위 큐를 사용하여 구현할 수 있다.[5] 초기 해를 생성하기 위한 좋은 휴리스틱이 없을 때는 깊이 우선 탐색이 권장되는데, 이는 빠르게 완전한 해를 찾아 상한 값을 설정할 수 있기 때문이다.[6]
4. 1. 최선 우선 탐색 (Best-First Search)
우선순위 큐를 사용하며, 각 노드의 하한이나 다른 평가 함수 값을 기준으로 우선순위를 부여하여 탐색한다. 다익스트라 알고리즘, A* 알고리즘 등이 이에 해당한다. 최적해를 빠르게 찾을 가능성이 높지만, 메모리 사용량이 많을 수 있다.5. 효율성
분기 한정법의 효율성은 노드 분할 절차와 상한 및 하한을 추정하는 절차에 크게 의존하며, 겹치지 않는 부분 집합으로 분할하는 것이 가장 좋다.[5]
이상적으로는 탐색 트리의 모든 노드가 잘리거나 풀렸을 때 절차가 중단되며, 이때 잘리지 않은 부분의 상한과 하한은 함수의 전역 최솟값과 같아진다. 실제로는 정해진 시간이 지나면 절차를 중단하는 경우가 많으며, 이때 잘리지 않은 부분의 최대 하한값과 최소 상한값은 전역 최솟값의 구간을 정의한다. 시간 제한 외에도, (최대 - 최소) / (최대 + 최소)가 특정 값 이하가 될 때 중단하는 등 오차 기준을 적용할 수 있다.[6]
분기 한정법은 사용된 알고리즘의 유효성에 크게 의존한다. 잘못된 선택을 하면 분기가 반복되어 전혀 잘라내기가 이루어지지 않고 지나치게 세분화될 수 있다. 이는 정의역을 총력 조사하는 것과 같아져 비현실적이다. 모든 문제에 잘 맞는 한정법 알고리즘은 존재하지 않으며, 앞으로도 발견되기 어려울 것이므로 문제마다 분기 한정법 알고리즘을 설계해야 한다.[6]
5. 1. 분기 전략
분기 한정법의 효율성은 노드를 나누는 과정과 상한 및 하한을 추정하는 방법에 크게 의존한다. 다른 조건이 모두 같다면, 겹치지 않는 부분 문제로 분할하는 것이 가장 좋다.[5] 부분 문제의 크기를 균형 있게 유지하는 것이 중요하다.이상적으로는 탐색 트리의 모든 노드가 잘리거나 풀렸을 때 알고리즘이 중단된다. 이 시점에서 잘리지 않은 부분 문제들의 상한과 하한은 함수의 전역 최솟값과 같아진다. 실제로는 정해진 시간이 지나면 알고리즘을 중단하는 경우가 많다. 이때 잘리지 않은 부분 문제들의 최대 하한값과 최소 상한값은 전역 최솟값의 구간을 정의한다. 또는, (최대 - 최소) / (최대 + 최소) 값이 특정 값 이하가 될 때 알고리즘을 중단시킬 수도 있다.
분기 한정법 알고리즘은 문제마다 다르게 설계해야 한다. 잘못된 알고리즘을 선택하면 분기가 반복되어 성능이 저하될 수 있다. 모든 문제에 적합한 범용적인 분기 한정법 알고리즘은 현재 존재하지 않으며, 앞으로도 발견되기 어려울 것으로 예상된다.
5. 2. 한정 전략
분기 한정법의 효율성은 노드를 나누는 과정과 상한 및 하한을 추정하는 방법에 크게 의존한다. 모든 조건이 같다면, 겹치지 않는 부분으로 나누는 것이 가장 좋다.[5]이상적으로는 탐색 트리의 모든 노드가 더 이상 고려할 필요가 없거나 해가 구해졌을 때 알고리즘이 중단된다. 이때, 남아있는 모든 부분 문제의 하한과 상한은 함수의 전체 최솟값과 같아진다. 하지만 실제로는 정해진 시간이 지나면 알고리즘을 중단하는 경우가 많다. 이때 남아있는 부분 문제들의 최대 하한과 최소 상한은 전체 최솟값의 구간을 정의한다. (최대 - 최소) / (최대 + 최소) 값이 특정 값 이하가 될 때 알고리즘을 중단시키는 방법도 있다.[6]
분기 한정 알고리즘은 문제마다 새롭게 설계해야 한다. 분기 한정법에 사용된 알고리즘이 적절하지 않으면, 가지치기가 거의 이루어지지 않아 분기가 반복되고, 문제가 지나치게 세분화될 수 있다. 이는 정의역을 모두 탐색하는 것과 같아져서, 많은 경우 비현실적이다.[6]
5. 3. 가지치기 전략
분기 한정법의 효율성은 노드를 분할하는 과정과 상한 및 하한을 추정하는 방법에 크게 의존한다. 분기 과정에서 잘못된 선택을 하면, 분기가 반복되면서 가지치기가 제대로 이루어지지 않아 탐색 공간이 지나치게 커질 수 있다. 이는 모든 경우의 수를 전부 조사하는 것과 같아져, 현실적으로 문제를 해결하기 어렵게 만든다.[6]따라서, 분기 한정법을 효과적으로 사용하려면 해결하고자 하는 문제에 맞게 분기 및 한정 알고리즘을 설계해야 한다. 모든 문제에 적용 가능한 알고리즘은 존재하지 않으며, 앞으로도 발견될 가능성이 낮다. 최적해를 빠르게 찾으려면 불필요한 탐색을 최대한 줄여야 하며, 현재까지 찾은 최적해의 상한을 빠르게 업데이트하는 것이 효과적이다.[5]
6. 응용 분야
분기 한정법은 여러 NP-난해 문제들을 해결하는 데 사용된다. 대표적인 예시들은 다음과 같다.
- 정수 계획법
- 비선형 계획법
- 외판원 문제(TSP)[10][11]
- 2차 할당 문제(QAP)
- 최대 만족 문제(MAX-SAT)
- 최근접 이웃 탐색 ([후쿠나가 케이노스케]에 의함)[12]
- 유연 작업장 스케줄링
- 절단 문제
- 계산 식물 계통학
- 집합 반전
- 매개변수 추정
- 0/1 배낭 문제
- 집합 커버 문제
- 기계 학습에서의 특징 선택[13][14]
- 컴퓨터 비전에서의 구조적 예측[15]
- 아크 경로 문제, 중국 우체부 문제 포함
- 인재 스케줄링, 장면 촬영 배열 문제
분기 한정법은 다양한 휴리스틱의 기반이 되기도 한다. 예를 들어 상한과 하한의 차이가 특정 임계값보다 작아지면 분기를 중단하여 계산량을 줄일 수 있다. 이는 "실용적인 목적에 충분히 좋은" 해를 빠르게 찾을 때 유용하다. 특히 비용 함수에 노이즈가 있거나 통계적 추정에 기반한 경우, 특정 확률로 값의 범위를 추정할 수 있다면 이러한 기법이 효과적이다.
또한, 게임 트리 탐색에도 분기 한정법이 자주 사용되며, 알파-베타 가지치기는 분기 한정법의 한 종류이다.
6. 1. 정수 계획법 (Integer Programming)
정수 계획법은 결정 변수가 정수 값을 가져야 하는 최적화 문제이다.[10][11]6. 2. 비선형 계획법 (Nonlinear Programming)
목적 함수 또는 제약 조건이 비선형 함수인 최적화 문제이다.[10][11] 분기 한정법은 비선형 계획법 외에도 외판원 문제(TSP), 최대 만족 문제(MAX-SAT) 등 다양한 문제에 사용된다.6. 3. 외판원 문제 (Traveling Salesperson Problem, TSP)
외판원 문제(TSP)는 NP-난해 문제 중 하나로, 분기 한정법을 사용하여 해결할 수 있다.[10][11] 외판원 문제는 주어진 모든 도시를 한 번씩 방문하고 출발 도시로 돌아오는 최단 경로를 찾는 문제이다. 이 기법은 한국의 물류, 배송 시스템 최적화에 활용될 수 있다.6. 4. 이차 할당 문제 (Quadratic Assignment Problem, QAP)
이차 할당 문제(QAP)는 시설들을 위치에 할당할 때, 시설 간의 상호작용 비용을 최소화하는 문제이다.[10][11]6. 5. 최대 만족 가능성 문제 (MAX-SAT)
최대 만족 가능성 문제(MAX-SAT)는 주어진 논리식을 최대한 만족시키는 변수 할당을 찾는 문제이다.[10][11][12][13][14][15]6. 6. 최근접 이웃 탐색 (Nearest Neighbor Search, NNS)
최근접 이웃 탐색(NNS)은 주어진 데이터 집합에서 특정 점과 가장 가까운 점을 찾는 문제이며, 후쿠나가 케이노스케에 의해 연구되었다.[12] 분기 한정법은 이러한 최근접 이웃 탐색 문제 해결에 사용된다.6. 7. 기타 응용 분야
분기 한정법은 여러 NP-난해 문제에 사용된다.- 정수 계획법
- 비선형 계획법
- 외판원 문제(TSP)[10][11]
- 2차 할당 문제(QAP)
- 최대 만족 문제(MAX-SAT)
- 최근접 이웃 탐색 (후쿠나가 케이노스케에 의함)[12]
- 유연 작업장 스케줄링
- 절단 문제
- 계산 식물 계통학
- 집합 반전
- 매개변수 추정
- 0/1 배낭 문제
- 집합 커버 문제
- 기계 학습에서의 특징 선택[13][14]
- 컴퓨터 비전에서의 구조적 예측[15]
- 아크 경로 문제, 중국 우체부 문제 포함
- 인재 스케줄링, 장면 촬영 배열 문제
분기 한정법은 다양한 휴리스틱의 기반이 될 수도 있다. 예를 들어, 상한과 하한 사이의 차이가 특정 임계값보다 작아지면 분기를 중단할 수 있다. 이는 해가 "실용적인 목적에 충분히 좋고" 필요한 계산을 크게 줄일 수 있을 때 사용된다. 이러한 유형의 솔루션은 사용된 비용 함수가 ''노이즈가 많거나'' 통계적 추정의 결과로 정확히 알려진 것이 아니라 특정 확률로 값의 범위 내에 있을 것으로 알려진 경우에 특히 적용 가능하다.
같은 이유로, 게임 트리의 탐색에도 분기 한정법이 자주 사용되며, 알파-베타 가지치기는 분기 한정법의 일종이다.
7. 다른 알고리즘과의 관계
분기 한정법은 한정법의 종류, 탐색 트리의 노드 생성 및 검사 방법에 따라 분류할 수 있다. 분기는 경우를 나누므로 병렬 또는 분산 구현에 적합하다.
A*, B*, 알파-베타 검색 알고리즘을 포함하는 분기 한정법의 일반화가 제시되었다.[16] 알파-베타 가지치기는 게임 트리 탐색에 사용되는 분기 한정법의 일종이다.
7. 1. 백트래킹 (Backtracking)
분기 한정법의 설계 전략은 문제를 풀기 위해 상태 공간 트리를 사용한다는 점에서 백트래킹과 매우 유사하다. 이 두 기법의 차이점은 분기 한정법이 트리의 탐색 순서를 제한하지 않는다는 점과, 최적화 문제에만 사용된다는 점이다.7. 2. 동적 계획법 (Dynamic Programming)
동적 계획법은 부분 문제의 최적성이 필요하지만, 성립하지 않는 부분 문제에 대해서는 적절하게 경우를 나누어 분기함으로써 분기 한정법으로 잘 풀리는 경우도 있다. 동적 계획법과 분기 한정법은 부분 문제의 최적해를 활용하여 전체 문제의 최적해를 구한다는 점에서 유사하다. 분기 한정법은 부분 문제의 최적성이 보장되지 않는 경우에도 적용할 수 있다.7. 3. 탐욕 알고리즘 (Greedy Algorithm)
분기 한정법은 문제를 푸는 데 상태 공간 트리를 사용한다는 점에서 백트래킹과 매우 유사하다. 그러나 분기 한정법은 트리 탐색 순서를 제한하지 않으며, 최적화 문제에만 사용된다는 차이점이 있다.동적 계획법이나 탐욕법은 부분 문제의 최적해가 전체 문제의 최적해에 기여해야 한다는 전제가 필요하다. 이러한 전제가 성립하지 않는 부분 문제에 대해서는, 적절하게 경우를 나누어 분기함으로써 분기 한정법을 적용하여 효과적으로 해결할 수 있다.
7. 4. A* 탐색 알고리즘, 알파-베타 가지치기
Nau 외 연구진은 A*, B*, 알파-베타 검색 알고리즘을 포함하는 분기 한정법의 일반화를 제시했다.[16] 알파-베타 가지치기는 게임 트리 탐색에 사용되는 분기 한정법의 일종이다.참조
[1]
논문
An automatic method of solving discrete programming problems
[2]
웹사이트
Staff News
http://www.lse.ac.uk[...]
2018-10-08
[3]
간행물
Branch and bound methods for the traveling salesman problem
http://apps.dtic.mil[...]
Carnegie Mellon University
[4]
문서
Parallel Algorithm Design for Branch and Bound
http://www.cc.gatech[...]
Kluwer Academic Press
2015-09-16
[5]
문서
Branch and Bound Algorithms—Principles and Examples
http://www.diku.dk/O[...]
University of Copenhagen
2014-08-13
[6]
서적
Algorithms and Data Structures: The Basic Toolbox
http://people.mpi-in[...]
Springer
[7]
서적
Interval Analysis
Prentice-Hall
[8]
서적
Applied Interval Analysis
Springer
[9]
서적
Global Optimization using Interval Analysis
Marcel Dekker
[10]
논문
An algorithm for the traveling salesman problem
http://dspace.mit.ed[...]
[11]
서적
Theory of Scheduling
https://archive.org/[...]
Courier Dover Publications
[12]
논문
A branch and bound algorithm for computing {{mvar|k}}-nearest neighbors
[13]
논문
A branch and bound algorithm for feature subset selection
http://www.computer.[...]
[14]
arXiv
Sparse Regression at Scale: Branch-and-Bound rooted in First-Order Optimization
2020
[15]
논문
Structured Learning and Prediction in Computer Vision
[16]
논문
General branch and bound, and its relation to A∗ and AO∗
https://www.cs.umd.e[...]
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com